package com.itbaima.gulimall.product;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 1. 整合mybatis-plus
 *   1. 导入依赖
 *   2. 配置数据源 导入数据库驱动 在application.yml配置数据源相关信息
 *   3. 配置mybatis-plus 使用MapperScan注解扫描 配置SQL映射文件位置
 * 2. 使用逻辑删除
 *   1. 配置全局的逻辑删除规则 (可省略)
 *   2. 配置逻辑删除的组件Bean (可省略)
 *   3. 给Bean加上逻辑删除注解@TableLogic
 * 3. 使用JSR303
 *   1. 给Bean添加校验注解javax.validation.constraints，并定义自己的message提示
 *   2. 开启校验功能@Valid（校验错误后，有默认的响应）
 *   3. 给校验的bean后紧跟一各BindingResult，就可以获取到校验的结果
 *   4. 分组校验
 *     1. 给校验注解标注什么情况需要进行校验
 *     2. @Validated({AddGroup.class})
 *     3. 默认没有指定分组的校验注解，在分组校验情况下不生效
 *   5. 自定义校验
 *     1. 编写自定义的校验注解
 *     2. 编写自定义的校验器
 *     3. 关联自定义的校验注解和校验器
 * 4. 统一的异常处理
 *   1. 编写异常处理类，使用@ControllerAdvice
 *   2. 使用@ExceptionHandler标注方法可以处理的异常
 */
@SpringBootApplication
@EnableDiscoveryClient
@MapperScan("com.itbaima.gulimall.product.dao")
public class ProductApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductApplication.class, args);
    }
}
